В час пик на остановку одновременно подъехали три
маршрутных такси, следующие по одному маршруту, в которые тут же набились
пассажиры. Водители заметили, что количество людей в разных маршрутках разное,
и решили пересадить часть пассажиров так, чтобы в каждой маршрутке было
одинаковое число пассажиров. Определите, какое наименьшее количество пассажиров
придется пересадить для этого.
Вход. Три
натуральных числа, не превосходящих 100 – количество пассажиров в первой,
второй и третьей маршрутках соответственно.
Выход. Выведите
одно число – наименьшее количество пассажиров, которое требуется пересадить.
Если это выполнить невозможно, то выведите IMPOSSIBLE.
Пример входа |
Пример выхода |
1 2 3 |
1 |
математика
Пусть a, b,
c – количество людей в первой, второй
и третьей маршрутках. Для того чтобы после пересадки количество людей в
маршрутках было одинаковое, необходимо чтобы сумма a + b + c делилась на 3.
Пусть d = (a + b
+ c) / 3 – количество людей, которое
должно находиться в каждой маршрутке после пересадки. Тогда из каждой маршрутки
следует пересадить в какую-то другую столько людей, чтобы в ней осталось ровно d. Это возможно только если в маршрутке
изначально находится больше d
пассажиров. Например, из первой маршрутки следует пересадить a – d
людей, если только a > d. Со второй маршрутки следует
пересадить b – d людей (если b > d). Из третьей маршрутки следует
пересадить c – d людей (если c > d).
Реализация алгоритма
Читаем
входные данные.
scanf("%d %d %d",&a,&b,&c);
Если общая сумма людей не делится на 3, то выводим
IMPOSSIBLE.
if ((a + b +
c) % 3 != 0)
puts("IMPOSSIBLE");
else
{
res = 0;
Вычисляем количество d людей в маршрутках после пересадки.
d = (a + b + c) / 3;
В переменной res
считаем количество пересаживаемых людей.
if (a > d) res += a - d;
if (b > d) res += b - d;
if (c > d) res += c - d;
Выводим ответ.
printf("%d\n",res);
}
Python реализация
Читаем
входные данные.
a, b, c = map(int, input().split())
Если общая сумма людей не делится на 3, то выводим
IMPOSSIBLE.
if (a + b + c) % 3 != 0:
print("IMPOSSIBLE")
else:
res = 0
Вычисляем количество d людей в маршрутках после пересадки.
d = (a + b + c) // 3
В переменной res
считаем количество пересаживаемых людей.
if a > d: res += a – d
if b > d: res += b – d
if c > d: res += c – d
Выводим ответ.
print(res)